ROM is used to store data that are used repeatedly in a system application. Such applications include programmed instruction sequences for system initialization and operation, code conversions and look-up tables. A storage cell in ROM, at the intersection of row and column, typically stores one bit of information. Most integrated circuit ROMs utilize the presence or absence of a transistor at a row-column junction to represent a binary digit, one or zero.
As memories increase in size, semiconductor technology has evolved to produce more transistors per unit area of semiconductor chip. As the number of transistors per unit area of semiconductor chip has increased, ROM density has also increased. It is desirable to have even higher densities of information storage. Multiple-level ROM disclosed in U.S. Pat. Re. No. 32,401 is capable of storing twice as much information per unit area as conventional FET binary ROM. To provide multiple level outputs, each memory cell transistor has either the threshold voltage adjusted by ion implantation, or the cross-sectional area of the transistor channel selected from one of 2.sup.n preselected values to provide multiple level outputs. Multiple level outputs produced by such transistors must be decoded to ascertain the corresponding bits represented by the output of a particular memory cell transistor. To achieve the encoding, sense amplifiers have typically required one less reference level than the number of possible multiple level outputs.